package com.star.warmwinter;

import com.star.tool.Utils;
import com.star.tool.constant.TimeConstants;
import com.star.tool.util.TimeUtils;
import com.star.warmwinter.common.BaseApplication;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * <pre>
 *     author: Blankj
 *     blog  : http://blankj.com
 *     time  : 2016/10/12
 *     desc  : app about utils
 * </pre>
 */
public class App extends BaseApplication {

    private static App sInstance;

    public static App getInstance() {
        return sInstance;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        sInstance = this;
        Utils.init(this);
        final long timeMillis = 1493887049000L;// 2017-05-04 16:37:29
        final Date timeDate = new Date(timeMillis);
        final DateFormat defaultFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
        final String timeString = defaultFormat.format(timeDate);
        long testTimeMillis = timeMillis + 10 * TimeConstants.DAY + 10 * TimeConstants.MIN + 10 * TimeConstants.SEC;
        String testTimeString = TimeUtils.millis2String(testTimeMillis);
        System.out.println("======== " + TimeUtils.getValueByCalendarField(timeString, Calendar.DAY_OF_WEEK));
        System.out.println("======== " + TimeUtils.getValueByCalendarField(timeString, Calendar.WEEK_OF_MONTH));
        System.out.println("======== " + TimeUtils.getValueByCalendarField(timeString, Calendar.WEEK_OF_YEAR));
        System.out.println("==================================");
        System.out.println("======== " + TimeUtils.getValueByCalendarField(timeString, Calendar.ERA));
        System.out.println("======== " + TimeUtils.getValueByCalendarField(timeString, Calendar.YEAR));
        System.out.println("======== " + TimeUtils.getValueByCalendarField(timeString, Calendar.MONTH));
        System.out.println("======== " + TimeUtils.getValueByCalendarField(timeString, Calendar.DST_OFFSET));
//        initLeakCanary();
//        initLog();
//        initCrash();
    }

//    private void initLeakCanary() {
//        // 内存泄露检查工具
//        if (LeakCanary.isInAnalyzerProcess(this)) {
//            // This process is dedicated to LeakCanary for heap analysis.
//            // You should not init your app in this process.
//            return;
//        }
//        LeakCanary.install(this);
//    }

    // init it in ur application
//    public void initLog() {
//        final LogUtils.Config config = LogUtils.getConfig()
//                .setLogSwitch(BuildConfig.DEBUG)// 设置 log 总开关，包括输出到控制台和文件，默认开
//                .setConsoleSwitch(BuildConfig.DEBUG)// 设置是否输出到控制台开关，默认开
//                .setGlobalTag(null)// 设置 log 全局标签，默认为空
//                // 当全局标签不为空时，我们输出的 log 全部为该 tag，
//                // 为空时，如果传入的 tag 为空那就显示类名，否则显示 tag
//                .setLogHeadSwitch(true)// 设置 log 头信息开关，默认为开
//                .setLog2FileSwitch(false)// 打印 log 时是否存到文件的开关，默认关
//                .setDir("")// 当自定义路径为空时，写入应用的/cache/log/目录中
//                .setFilePrefix("")// 当文件前缀为空时，默认为"util"，即写入文件为"util-MM-dd.txt"
//                .setBorderSwitch(true)// 输出日志是否带边框开关，默认开
//                .setSingleTagSwitch(true)// 一条日志仅输出一条，默认开，为美化 AS 3.1 的 Logcat
//                .setConsoleFilter(LogUtils.V)// log 的控制台过滤器，和 logcat 过滤器同理，默认 Verbose
//                .setFileFilter(LogUtils.V)// log 文件过滤器，和 logcat 过滤器同理，默认 Verbose
//                .setStackDeep(1)// log 栈深度，默认为 1
//                .setStackOffset(0);// 设置栈偏移，比如二次封装的话就需要设置，默认为 0
//        LogUtils.d(config.toString());
//    }

//    @SuppressLint("MissingPermission")
//    private void initCrash() {
//        CrashUtils.init(new CrashUtils.OnCrashListener() {
//            @Override
//            public void onCrash(String crashInfo, Throwable e) {
//                LogUtils.e(crashInfo);
//                AppUtils.relaunchApp();
//            }
//        });
//    }
}


